package com.jiangxjsy.model.core.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiangxjsy.core.constant.LoginTypeConstant;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * wukong-crm-master
 * 蒋胜宇
 * 2025/6/4 14:29
 */

@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserInfo implements Serializable {
    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 用户名
     */
    private String username;

    /**
     * 密码
     */
    private String password;

    /**
     * 盐值
     */
    private String salt;

    /**
     * 手机号
     */
    private String mobile;

    /**
     * 头像
     */
    private String img;

    /**
     * 创建时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 真实姓名
     */
    private String realname;

    /**
     * 部门 ID
     */
    private Integer deptId;

    /**
     * 部门名称
     */
    private String deptName;

    /**
     * 状态
     */
    private Integer status;

    /**
     * 父级名称
     */
    private String parentName;

    /**
     * 父级 ID
     */
    private Long parentId;

    /**
     * 公司名称
     */
    private String companyName;

    /**
     * 登录方式，默认密码登录
     */
    private Integer loginType = LoginTypeConstant.PASSWORD_LOGIN;

    /**
     * 权限
     */
    private List<String> authoritiesUrlList = new ArrayList<>();

    /**
     * 角色
     */
    private List<Integer> roles;

    /**
     * 邮箱
     */
    private Integer emailAccount;

    /**
     * 超级管理员用户 ID
     */
    private Long superUserId;

    /**
     * 超级管理员角色 ID
     */
    private Integer superRoleId;

    /**
     * 职位
     */
    private String post;

    /**
     * 最后登录 IP
     */
    private String lastLoginIp;

    /**
     * 最后登录时间
     */
    private String lastLoginTime;

    /**
     * 是否删除
     */
    private Integer isDel;
}
